littlesounddjfandomcom-20200213-history
Multiboot MIDI Sync
Q: The program wont save your configuration. (<– v1.0 says “Now saves your settings”, is this fixed?) A: Yes it's fixed. If it doesn't work, please tell me and I'll try to fix it. Download page: http://www.youtube.com/watch?v=RvD3fv3tpiw http://www.firestarter-music.de/lsdj/ MIDI to LSDj sync converter v 1.0! Version history: Changes for v 1.0 * PCLinker parallel interface support. The PCLinker is some kind of cable originally used to transfer games to special carts. With the help of Peter Lindsteth it's now supported for MIDI communication too. There are no special things that you need to do to use this cable, just plug and play. (W2000/XP will still need User Port) If someone is wondering: The cable is just used for communication, so you don't need a special PCLinker compatible card to use MIDI functions. (Note that this feature is not actually tested with the real cable yet, but I built a copy using Peter's instructions, and tested the prog with, so it should work.) * Grey Gameboy support! Support for the grey guy is implemented, but requires a setting to be made. I'm trying to work out a way that works with both models (After all they can communicate with each other.) But for the moment you'll have to tell the program whether you're using a monochrome (should be tetrachrome :) ) or Gameboy Color / Advance. Only the protocol for the Grey one is implemented, you still have to get the little “small-to-big” plug yourself :) (Or build a multiboot cable using an old Game Link cable) * Removed the status light, which wasn't very accurate anyway, and probably fooled some users. * Removed an unused checkbox called «Note (Master on/off)" Changes for v 0.7 beta * Two beta versions implementing support for the PC Linker device. Changes for v 0.6 * Now saves your settings.(Puh, just about time!) * From v 0.5 note data was transmitted in sync mode too. This would eventually speed up playback. Problem Fixed. * Experimental, inaccurate Gameboy Cable status light. Red means bad connection, green means OK connection. Here is how it works: * When the cable is disconnected from the Gameboy, the light is red. * When the cable is connected to the Gameboy, and the Gameboy is turned ON, the light is hopefully green(see below...). * When the cable is connected to the Gameboy, and the Gameboy is turned OFF, the light may show either state. * A correctly connected cable will show a red light from the moment data is sent to the Gameboy! So don't take the lights too seriously... * Not really a version update, but I've got it confirmed that it actually works on Windows XP + User Port! Changes for v 0.5 * Now including inpout.dll which was forgotten in the last version :/ This means the program actually WORKS this time... (Still not enough tested under Windows XP, but it IS working perfectly under NT 4.0 + User Port!) * Shipping User Port instead of Give IO (It's probably better for Windows XP) * Still doesn't save your changes (Yeah, Yeah, next release!) * Now includes extensive keyboard emulation. The program can now transmit both key strokes and MIDI note data to LSDj. (You give focus to a keyboard box and start playing!) * LSDj can only handle monophonic MIDI data. This is a limitation in LSDj, not a bug in the program! You cannot sync and send note data / use keyboard at the same time. This too is a limitation in LSDj. * Changed the window title from “MIDI to LSDj sync” to “MIDI to LSDj” :) Changes for v 0.4 (Non-public release) * Includes KEYBD experiment window... ---------------------------------- What is it? ''' This program lets you syncronize LSDj with any MIDI source that can send MIDI clock signals. It can also send MIDI note data to LSDj through the keybd mode. (But only one thing at a time. It MIGHT be able to sync nanoloop, but nobody has tried that to the best of my knowledge. '''What do I need? In order to use the program you need the following: *Little Sound Dj *A nocash multiboot cable. (http://darkfader.net/gba/main.html) Or a PCLinker cable (For sale with cartridge here: http://www.goldenshop.com.hk/AI-trad/Misc_htm/gb_pclinker.htm ) *A computer with a parallell port and a MIDI in port. *Any device capable of sending MIDI clock signals. ... alternatively you may use a MIDI software + Hubi's loopback For Windows NT/2000/XP users there is MIDI yoke: ( http://www.midiox.com/index.htm?http://www.midiox.com/myoke.htm ) But I've haven't tried this software out, so I can't swear that it works or is stable. When I build a nocash cable, do I need the extra wires? The extra wires described in Martin Korth's GBATEK are not ever used for communication with GBC and older games. Though these lines are useful and recommended for GBA multiboot users, they are not needed for sync. What are the pro's and con's compared to the Firest Arter MIDI cable described in the Wiki? * Con: Less compact. You will need a computer to use this program, whereas you only need the cable for the Firest Arter cable. * Con: Latency. There's a chance that program introduces a certain degree of latency. Also you'll notice that the program may lag if you use your computer for other things meanwhile. * Pro: The nocash cable is easier to build. No electronic components. You may even escape soldering. (If you just connect the wires between a link cable and a printer cable using adhersive, or even just stick the link cable's wires into the printer port, though I highly discourage from that method...) * Pro: The program responds to MIDI start and stop commands, making it suitable for use with MIDI sequencer software. Does it work under Windows 2000/XP? ''' Yes it does, using User Port (Included in download) '''What gameboy models does it work with? Since version 1.0 DMG («grey guy») support is official, though you need to select your model in the program. Can I use my Flash 2 advance USB linker? No! At the moment I don't know anything about this device. Neither do I own one, so I guess it'd be impossible. Can I use my MBV2 cable? I dont know anything about this one either. There is a possibility that the MBV2 cable is identical to the nocash cable, in which case it should work. Otherwise I could probably implement support if I could get my hands on a documentation of the cable. How does the program work? First choose a MIDI In device, to receive sync signals from. If there are any loopback devices installed the first one of them (usually LB1) will autmatically selected. If needed check the Sync checkbox. If your sync source is capable of sending start and stop messages the program will react to them, unless, of course, if you uncheck the corresponding checkboxes. If receiving sync the boxes in quant control will start moving to indicate sync speed, and a BPM will be approximated. If sync is lost QC will stop and BPM will indicate “nosync”. When you know the program can correctly receive sync sync signals, connect the multiboot cable. You need to set LSDj in a sync mode. (Both Slave and MIDI should work) Then press start at a desired location. LSDj should now say wait. Press play on your sync source, or if it constantly spits MIDI clocks, check the Master Sync in the program. LSDj should now sync to incoming signals! What is “Quant control”? That's a stupid name for a stupid feature I implemented to make the program look busy. Actually it's uesful for two reasons: It indicates whether the program receives any MIDI clocks and it mnonitors the sync position. Quant control works like this: when a tick (aka MIDI clock) occurs the first box moves one step to the right. When it overflows (after 6 ticks) the step counter moves to the next step. After 16 steps the phrase counter moves to the next phrase position. A beat occurs every 4 steps. (Assuming a 4/4 metronome) So we have the following: 6 ticks make a step (One row in an LSDj phrase) 16 steps make a phrase 4 phrases make a chain (Chains are not counted) These values can be changed by clicking on each counter, eg if you base your songs on 4 ticks, 15 steps/phrase and put 8 phrases in a chain. Known bugs/Todo *The program wont save your configuration. (Fixed in v1.0) *You can't change process/thread priority. (Might be handy at times...) *The program can't automatically determinate delay values :/